package leetcode.set_map;

import java.util.HashMap;

/**
 * 1189. “气球” 的最大数量
 * <p>
 * 给你一个字符串 text，你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"（气球）。
 * <p>
 * 字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
 * <p>
 * <p>
 * <p>
 * 示例 1：
 * <p>
 * 输入：text = "nlaebolko"
 * 输出：1
 * <p>
 * 示例 2：
 * <p>
 * 输入：text = "loonbalxballpoon"
 * 输出：2
 * <p>
 * 示例 3：
 * <p>
 * 输入：text = "leetcode"
 * 输出：0
 * <p>
 * <p>
 * <p>
 * 提示：
 * <p>
 * 1 <= text.length <= 10^4
 * text 全部由小写英文字母组成
 * 分析:统计text balloon单词出现的次数,并取该单词中最小的一个字符出现次数为拼接的个数进行返回
 */
public class Solution1189 {


    public static int maxNumberOfBalloons(String text) {
        HashMap<Character, Integer> freq = new HashMap<>(5);
        freq.put('a', 0);
        freq.put('b', 0);
        freq.put('o', 0);
        freq.put('l', 0);
        freq.put('n', 0);
        for (int i = 0; i < text.length(); i++) {
            Character key = text.charAt(i);

            if (freq.containsKey(key)) {
                freq.put(key, freq.get(key) + 1);
            }
        }
        freq.put('o', freq.get('o') / 2);
        freq.put('l', freq.get('l') / 2);
        //遍历map
        //定义最小结果集 resMin
        int resMin = Integer.MAX_VALUE;
        for (Character key : freq.keySet()) {
            Integer value = freq.get(key);
            if (value == 0) {
                return 0;
            }
            if (resMin > value) {
                resMin = value;
            }
        }
        return resMin;
    }

    public static void main(String[] args) {
        System.out.println(maxNumberOfBalloons("leetcode"));
    }
}
